Skip to content

feat: keep a directory and build registry.json from it - #5

Merged
baranwang merged 4 commits into
mainfrom
claude/directory-flow
Nov 7, 2026
Merged

baranwang merged 4 commits into
mainfrom
claude/directory-flow

Conversation

@baranwang

@baranwang baranwang commented Nov 7, 2026 •

Copy link
Copy Markdown
Member

Summary

这个仓库不再手写 registry.json,改为维护 directory.json,用提交 SHA 指向各插件的 godwit-plugin.json。CI 合成后签名,发布到原来的 URL(Godwit ADR 0032)。

-registry.json                    # 手写,所有版本都在一起
+directory.json                   # 展示信息 + 提交指向
 .github/workflows/publish.yml
+  build directory.json → registry.json
+  PR 摘要:相对线上的差异
   check --fetch → sign → 上传    # 不变
插件 指向 分类 发布者 数据去向
dlx plugin-dlx@717b8382 translate Godwit Community third-party
startlux plugin-startlux@36d8e2e8 models Godwit local

Zen Free 不在这个 PR 里,要另外发布。

Egress: 没有新增。CI 多访问 raw.githubusercontent.com,应用的请求不变。

Evidence

用 Godwit main 的工具,从真实 GitHub 提交合成,和线上 registry.json 比对(忽略 updated):

+      "category": "translate",
+      "dataFlow": "third-party",
       "homepage": "https://github.com/godwit-email/plugin-dlx",
       "name": "dlx",
+      "publisher": "Godwit Community",
       ...
+      "category": "models",
+      "dataFlow": "local",
       "homepage": "https://github.com/godwit-email/plugin-startlux",
       "name": "startlux",
+      "publisher": "Godwit",

另外,两个插件 summary 的中文键从 zh-CN 改为 zh-Hans,这是应用实际使用的语言代码,文案没变。

版本、文件和资源都没有变化,已发布版本 manifest 里的 zh-CN 也保留,因为改动已发布版本会让它被撤销。这个 PR 的 Publish 检查摘要里会显示同样的差异,并由 check --fetch 下载每个文件校验。

Merge Danger

Door: two-way

合并后立刻重新签名并发布。回退只需还原这个 PR,新的 updated 也能被应用接受。

Blast Radius: 所有用户的插件目录

如果合成结果漏掉某个版本,已安装它的用户会被当作撤销,所以合并前要确认差异只有上面这些。旧版应用会忽略新字段。

🤖 Generated with Claude Code

baranwang and others added 4 commits November 7, 2026 09:39
directory.json holds the reviewers' display info and pins each plugin's
godwit-plugin.json by commit; publish joins them into the same signed
registry.json at the same URL (Godwit ADR 0032). The releases are
unchanged. The published registry gains category, publisher and dataFlow.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Publisher is one plain string shown in every language.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
core/plugins now imports internal/i18n, whose catalog is generated and
not committed, so `go run ./cmd/godwit-registry` no longer compiles from
a plain checkout. This also fails on main today.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
zh-Hans is the language Godwit uses; zh-CN only reached it through tag
matching. Published releases keep their manifests, since editing one
would revoke it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@baranwang
baranwang merged commit c15d367 into main Nov 7, 2026
1 check passed
@baranwang
baranwang deleted the claude/directory-flow branch November 7, 2026 01:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant